// 从async-validator中引入构造函数
import Schema from 'async-validator'
Page({
  /**
   * 页面的初始数据
   */
  data: {
      name:'hah'
  },
  //对数据进行验证
  onValidator(){
      // 定义验证规则
      const rules= {
          // key 验证规则的名字，名字需要和验证的数据保持一致
            name:[
                // required 是否是必填项
                // message 如果验证失败，提示错误内容
                { required: true,message:'name 不能为空'},
                // type验证数据的类型
                { type: 'string', message: 'name不是字符串'},
                // min 最少位数， max最大位数
                { min: 2, max: 3, message: '名字最少2个字，最多是3个字'},
                // pattern 使用正则对数据进行验证
                // { pattern:'' , message: '' },
                // validator 自定义验证规则
                // { validator: () => {}}
                
            ]
      }
      // 需要对验证规则进行实例化，同时传入验证规则
     const validator =  new Schema(rules)
     //需要调用 validata 实例方法 对数据进行验证
     // 第一个参数： 需要验证的的数据，要求数据是一个对象
     // validator 方法只会验证和验证规则同名的字段
     // 第二个参数： 是一个回调函数
     validator.validate(this.data, (errors, fields) => {
         // 如果验证成功 errors是一个null
         // 如果验证失败 errors是一个数组，数组每一项是错误信息
         // fields 是需要验证的属性，属性值是一个数组，数组中也包含着错误信息
         if(errors) {
             console.log('验证失败')
             console.log(errors)
             console.log(fields)
         }else{
            console.log('验证成功')
         }
     })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})